
package com.tanker.controller;

import java.util.List;

import com.tanker.common.ErrorCode;
import com.tanker.common.out.ResponseObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.annotation.RestController;


@RestController
public class BaseController {
	
	
	private final static Logger logger = LoggerFactory.getLogger(BaseController.class);
//	@Autowired
//	private MemService memService;
//	/**
//	 * 返回验证信息，输出错误提示
//	 * @param result 验证返回的错误信息集合
//	 * @return
//	 */
//	public ResponseResult<?> validate(BindingResult result)
//	{
//		ResponseResult<?> responseObject = new ResponseResult<>();
//		ResponseHead responseHead=new ResponseHead();
//
////		responseObject.setErrorCode(ErrorCode.SUCCESS);
//		List<FieldError> errors = result.getFieldErrors();
//		for(FieldError err : errors) {
//			//所有输入错误都使用这个响应码
//			responseHead.setCode(ErrorCode.FAILED.getCode());
//			responseHead.setMessage(err.getDefaultMessage());//验证框架中获取的响应信息,bean中message的输入值
//			responseHead.setSuccess(false);
//			responseObject.setHead(responseHead);
//			return responseObject;
//		}
//		logger.info("数据校验失败responseObject={}",responseObject);
//		return responseObject;
//	}
//
//
//	/**
//	 * 返回验证信息，输出错误提示
//	 * @param result 验证返回的错误信息集合
//	 * @return
//	 */
//	public String  validateV1(BindingResult result)
//	{
//		String msg="";
//
////		responseObject.setErrorCode(ErrorCode.SUCCESS);
//		List<FieldError> errors = result.getFieldErrors();
//		for(FieldError err : errors) {
//			 msg =err.getDefaultMessage();
//			 return msg;
//		}
//		logger.info("数据校验失败msg={}",msg);
//		return msg;
//	}

	/**
	 * 返回验证信息，输出错误提示
	 * @param result 验证返回的错误信息集合
	 * @return
	 */
	public ResponseObject<?> validate(BindingResult result)
	{
		ResponseObject<?> responseObject = new ResponseObject<>();
		responseObject.setErrorCode(ErrorCode.SUCCESS);
		List<FieldError> errors = result.getFieldErrors();
		for(FieldError err : errors) {
			//所有输入错误都使用这个响应码
			responseObject.setResCode(ErrorCode.INPUT_ERROR.getCode());
			responseObject.setResMsg(err.getDefaultMessage());//验证框架中获取的响应信息,bean中message的输入值
			return responseObject;
		}
		logger.info("数据校验失败responseObject={}",responseObject);
		return responseObject;
	}

}
